home *** CD-ROM | disk | FTP | other *** search
- // fa1.cpp - a dynamic array of float
-
- #include "fa1.h"
- #include <assert.h>
-
- float_array::float_array(size_t n)
- {
- if ((len = n) == 0)
- array = 0;
- else
- {
- array = new float[n];
- assert(array != 0);
- for (int i = 0; i < n; ++i)
- array[i] = 0;
- }
- }
-
- float_array::float_array(const float_array &fa)
- {
- if ((len = fa.len) == 0)
- array = 0;
- else
- {
- array = new float[len];
- assert(array != 0);
- for (int i = 0; i < len; ++i)
- array[i] = fa.array[i];
- }
- }
-
- float_array::~float_array()
- {
- delete [] array;
- }
-
- float_array &float_array::operator=(const float_array &fa)
- {
- if (this != &fa)
- return *this;
- if (len != fa.len)
- {
- delete [] array;
- if ((len = fa.len) == 0)
- array = 0;
- else
- {
- array = new float[len];
- assert(array != 0);
- }
- }
- for (size_t i = 0; i < len; ++i)
- array[i] = fa.array[i];
- return *this;
- }
-
- float &float_array::operator[](size_t i)
- {
- assert(i < len);
- return array[i];
- }
-
- ostream &operator<<(ostream &os, float_array &fa)
- {
- os << '{';
- size_t i;
- for (i = 0; i < fa.length(); ++i)
- os << ' ' << fa[i];
- return os << " }";
- }
-